/*
 * webbx的按钮控制
 */
 
ButtonManager.prototype.getUserStateMap = function() {
	var ds = getDataset('bx_bxzb');
	if(ds == null)
		ds = getDataset('jk_jkzb');
	if(ds == null)
		return;
	var sRows = ds.getSelectedRows();
	var map = new HashMap();
 	map.put('6',false);//打印  
 	map.put('3', false);//编辑
 	map.put('8', false); //refresh
 	
 	if(sRows != null){//列表下只能一行选中才能“显示卡片”
 		if(sRows.length > 1)
 			map.put('30', false); //卡片显示
 		else
 			map.put('30', true); 
 	}
 	
 	if(sRows != null && sRows.length > 0){
 		map.put('25',true);//执行
 		map.put('DELETE',true);
 		map.put('APPROVE',true);
 		map.put('UNAPPROVE',true);
 		map.put('202',true);
 		if(sRows.length == 1){//只有选中行唯一，才可打印
 			map.put('6',true);
 			map.put('3', true);
 			map.put('8', true);
 		}
 		var a1 = new Array();
 		var a2 = new Array();
 		var a3 = new Array();
 		var a4 = new Array();
 		var a5 = new Array();
 		var a6 = new Array();
 		for(var i=0,len = sRows.length ; i<len; i++){
 			var sRow = sRows[i];
	 		var djzt = sRow.getCellValue(ds.nameToIndex('djzt'));
			if(djzt == IBillStatus.DJZT_TempSaved){
		    	map.put('APPROVE',false);
			}
			//单据只有在新增时、暂存修改时才可以暂存
			if(djzt == IBillStatus.DJZT_Saved || djzt == IBillStatus.DJZT_Verified || djzt == IBillStatus.DJZT_Sign){
				map.put('202',false);
			}
			//在web中，如果借款单的期初标志为“是”，web中只能查看，不能做相应的修改、删除、反审核等操作
			var qcbz = sRow.getCellValue(ds.nameToIndex('qcbz'));
			if(qcbz == 'Y')
				map.put('25',false);
			var sxbz = sRow.getCellValue(ds.nameToIndex('sxbz'));
	 		var spzt = sRow.getCellValue(ds.nameToIndex('spzt'));
			if(sxbz == '1' || spzt == IBillStatus.CHECKPASS){//已生效 或审批通过
				map.put('DELETE',false);
				map.put('APPROVE',false);
				map.put('3',false);//不可编辑
			} 
			if(spzt != IBillStatus.CHECKGOING && spzt != IBillStatus.CHECKPASS )//审批通过或审批未通过
			{
				map.put("UNAPPROVE", false);
			}
			
			if(spzt == IBillStatus.CHECKGOING){
				map.put('DELETE',false);
				//审批中的单据，如果不是审批的人，不能修改
				// 判断某操作员是否是当前单据的审核人
				var key = sRow.getCellValue(ds.nameToIndex('pk_jkbx')) + "ischeckman";
				if(getCheckManByKey(key) != 'Y')
					map.put('3',false);
			}
			
			a1.push(map.get('25'));
			a2.push(map.get('APPROVE'));
			a3.push(map.get('UNAPPROVE'));
			a4.push(map.get('DELETE'));
			a5.push(map.get('202'));
			a6.push(map.get('3'));//修改
 		}
 		map.put('25',getFlag(a1));
 		map.put('APPROVE',getFlag(a2));
 		map.put('UNAPPROVE',getFlag(a3));
 		map.put('DELETE',getFlag(a4));
 		map.put('202',getFlag(a5));
 		map.put('3',getFlag(a6));
		var notEditConfStr = getSessionAttribute("editStr");
		if(notEditConfStr != null){
			eval("var notEditConf = " + notEditConfStr);
			var bodyTab = getComponent("bodyTab");
			for(var i in notEditConf){
				if(notEditConf[i] == false){
					if(bodyTab.getSelectedItem().name == i){
						map.put('11', false);
						map.put('12', false);
						map.put('13', false);
						map.put('14', false);
						map.put('15', false);
					}
				}
			}
		}
 	}
 	else{
 		map.put('25',false);//执行
 		map.put('DELETE',false);
 		map.put('APPROVE',false);
 		map.put('UNAPPROVE',false);
 	}
	return map;
};

/*计算一个布尔数组的最终值*/ 
function getFlag(arr){
	var f1 = null;
	for(var k=0; k<arr.length; k++){
		if(f1 == null)
			f1 = arr.pop();
		else
			f1 = f1 && arr.pop();
	}
	return f1;
};
